﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using DHQGHN.DAL.Models.DanhMuc;

namespace DHQGHN.DAL
{
    /// <summary>
    /// VUONGBD
    /// 2015-05-26
    /// DINH NGHIA CAC MODEL DANH MUC TRA VE
    /// </summary>

    [DataContract]
    public class JSONMessage
    {
        [DataMember(Order = 0)]
        public int ErrorCode { get; set; }
        [DataMember(Order = 1)]
        public string ErrorMessage { get; set; }
        [DataMember(Order = 2)]
        public string ID { get; set; }
        [DataMember(Order = 3)]
        public long CurrentTime { get; set; }
    }

    [DataContract]
    public class JSONMessageType1
    {
        [DataMember(Order = 0)]
        public int ErrorCode { get; set; }
        [DataMember(Order = 1)]
        public string ErrorMessage { get; set; }
        [DataMember(Order = 2)]
        public string ID { get; set; }

        public JSONMessageType1()
        {
            ErrorCode = 200;
        }
    }

    [DataContract]
    public class JSONMessageType2
    {
        [DataMember(Order = 0)]
        public int ErrorCode { get; set; }
        [DataMember(Order = 1)]
        public string ErrorMessage { get; set; }
        [DataMember(Order = 2)]
        public long CurrentTime { get; set; }
    }

    [DataContract]
    public class JSONMessageType3
    {
        [DataMember(Order=0)]
        public int ErrorCode { get; set; }
        [DataMember(Order = 1)]
        public string ErrorMessage { get; set; }
        [DataMember(Order = 2)]
        public string ID { get; set; }
        [DataMember(Order = 3)]
        public List<JSONMessageType1> RESIDENT { get; set; }

        public JSONMessageType3()
        {
            ErrorCode = 200;
            RESIDENT = new List<JSONMessageType1>();
        }
    }

    [DataContract]
    public class JSONMessageTypeDataUpload
    {
        [DataMember(Order = 0)]
        public List<JSONMessageType1> ADM_UNIT_EXT { get; set; }
        [DataMember(Order = 1)]
        public List<JSONMessageType1> ADDRESS { get; set; }
        [DataMember(Order = 2)]
        public List<JSONMessageType1> HOUSEHOLD { get; set; }
        [DataMember(Order = 3)]
        public List<JSONMessageType1> RESIDENT { get; set; }

        public JSONMessageTypeDataUpload()
        {
            ADM_UNIT_EXT = new List<JSONMessageType1>();
            ADDRESS = new List<JSONMessageType1>();
            HOUSEHOLD = new List<JSONMessageType1>();
            RESIDENT = new List<JSONMessageType1>();
        }
    }

    [DataContract]
    public class JSONMessageTypeDataADMAddressUpload
    {
        [DataMember(Order = 0)]
        public List<JSONMessageType1> ADM_UNIT_EXT { get; set; }
          [DataMember(Order = 1)]
        public List<JSONMessageType1> ADDRESS { get; set; }

        public JSONMessageTypeDataADMAddressUpload()
        {
            ADM_UNIT_EXT = new List<JSONMessageType1>();
            ADDRESS = new List<JSONMessageType1>();        
        }
    }

    public class JSONMessageTypeDataHouseHoldResident
    {
        public long CurrentTime { get; set; }
        public List<JSONMessageType3> HOUSEHOLD { get; set; }

        public JSONMessageTypeDataHouseHoldResident()
        {
            HOUSEHOLD = new List<JSONMessageType3>();
        }
    }

    public class JSONMessageEducationTraining
    {
        public long CurrentTime { get; set; }
        public int ErrorCode { get; set; }
        public string ErrorMessage { get; set; }
        //public List<EDUCATION_TRAINING> EducationTraining { get; set; }

        public JSONMessageEducationTraining()
        {
            //EducationTraining = new List<EDUCATION_TRAINING>();
        }
    }

    public class JSONMessageMaritalStatus
    {
        public long CurrentTime { get; set; }
        public int ErrorCode { get; set; }
        public string ErrorMessage { get; set; }
        //public List<MARITAL_STATUS> MaritalStatus { get; set; }

        //public JSONMessageMaritalStatus()
        //{
        //    MaritalStatus = new List<MARITAL_STATUS>();
        //}
    }

    public class JSONMessageEducationLevel
    {
        public long CurrentTime { get; set; }
        public int ErrorCode { get; set; }
        public string ErrorMessage { get; set; }
        public List<EDUCATION_LEVEL> EducationLevel { get; set; }

        public JSONMessageEducationLevel()
        {
            EducationLevel = new List<EDUCATION_LEVEL>();
        }
    }

    public class JSONMessageTechnicalLevel
    {
        public long CurrentTime { get; set; }
        public int ErrorCode { get; set; }
        public string ErrorMessage { get; set; }
        public List<TECHNICAL_LEVEL> TechnicalLevel { get; set; }

        public JSONMessageTechnicalLevel()
        {
            TechnicalLevel = new List<TECHNICAL_LEVEL>();
        }
    }

    public class JSONMessageBloodGroup
    {
        public long CurrentTime { get; set; }
        public int ErrorCode { get; set; }
        public string ErrorMessage { get; set; }
        public List<BLOOD_GROUP> BloodGroup { get; set; }

        public JSONMessageBloodGroup()
        {
            BloodGroup = new List<BLOOD_GROUP>();
        }
    }

    public class JSONMessageSeriousDiseases
    {
        public long CurrentTime { get; set; }
        public int ErrorCode { get; set; }
        public string ErrorMessage { get; set; }
        public List<SERIOUS_DISEASES> SeriousDiseases { get; set; }

        public JSONMessageSeriousDiseases()
        {
            SeriousDiseases = new List<SERIOUS_DISEASES>();
        }
    }

    public class JSONMessageDisabilityStatus
    {
        public long CurrentTime { get; set; }
        public int ErrorCode { get; set; }
        public string ErrorMessage { get; set; }
        public List<DISABILITY_STATUS> DisabilityStatus { get; set; }

        public JSONMessageDisabilityStatus()
        {
            DisabilityStatus = new List<DISABILITY_STATUS>();
        }
    }

    public class JSONMessageInsuranceStatus
    {
        public long CurrentTime { get; set; }
        public int ErrorCode { get; set; }
        public string ErrorMessage { get; set; }
        public List<INSURANCE_STATUS> InsuranceStatus { get; set; }
       
        public JSONMessageInsuranceStatus()
        {
            InsuranceStatus = new List<INSURANCE_STATUS>();
        }
    }

    public class JSONMessageCourt
    {
        public long CurrentTime { get; set; }
        public int ErrorCode { get; set; }
        public string ErrorMessage { get; set; }
        public List<COURT> Court { get; set; }

        public JSONMessageCourt()
        {
            Court = new List<COURT>();
        }
    }


    public class JSONMessageDeathCause
    {
        public long CurrentTime { get; set; }
        public int ErrorCode { get; set; }
        public string ErrorMessage { get; set; }
        public List<DEATH_CAUSE> DeathCause { get; set; }

        public JSONMessageDeathCause()
        {
            DeathCause = new List<DEATH_CAUSE>();
        }
    }
}
